//
//  HOMCArrayIterations.h
//  HigherOrderMessaging
//
//  Created by Ofri Wolfus on 18/09/06.
//  Copyright 2006 Ofri Wolfus. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#include <stdarg.h>

@class Message;

/*
 * In all of the following functions, resultingCollection must be a class that responds to [[resultingCollection alloc] init],
 * [[resultingCollection alloc] initWithCapacity:] and that the resulting instance responds to -addObject: and -methodForSelector:.
 */
id hom_collectv(id *objects, unsigned count, BOOL cleanup, Class resultingCollection, Message *msg);
id hom_selectWhere(id *objects, unsigned count, BOOL cleanup, Class resultingCollection, Message *firstMsg, va_list additionalMessages);
id hom_rejectWhere(id *objects, unsigned count, BOOL cleanup, Class resultingCollection, Message *firstMsg, va_list additionalMessages);
id hom_selectSingleWhere(id *objects, unsigned count, BOOL cleanup, Message *firstMsg, va_list additionalMessages);
//id hom_rejectSingleWhere(id *objects, unsigned count, BOOL cleanup, Message *firstMsg, va_list additionalMessages);
